#pragma once

#include "PreciseTime.h"
#include "FpsCounter.h"


class CTimer: public ITimer
{
public:
	CTimer();
	virtual ~CTimer();

	virtual void Update();

	virtual float	GetTime(ETimeType time_type) const;
	virtual float	GetFrameTime() const;
	virtual float	GetFPS(EFPSType fps_type) const;
	virtual void	SetTimeScale(float scale);

	virtual SDateTime	GetDateTime() const;

private:
	CPreciseTime	m_StartTime;
	float					m_TimeScale;

	CPreciseTime	m_GameTime;
	CPreciseTime	m_FrameStartTime;
	CPreciseTime	m_LastFrameTime;

	CFpsCounter		m_fps;
};